#ifndef GAME_CORE
#define GAME_CORE

#include "GameMenu.h"
#include "GameEngine.h"

namespace interne
{
    enum GameState
    {
        GMS_NOTHINK,
        GMS_MENU,
        GMS_GAME,
        GMS_QUIT,
        GMS_COUNT
    };
    class GameCore
    {
        public:
            GameCore();
            virtual ~GameCore();

            void creatWindowsWithOption(const char*);
            void creatWindows(unsigned int width, unsigned int height, unsigned char bit);

            void changeState(GameState);

            void run();
        protected:
            void render();
        private:
            GameState current;
            friend class Physic;
            friend class GameEngine;

            sleek::core::device::Device *screen;
            sleek::core::engine::world *everythink;
            sleek::gui::statictext *fps;

            GameMenu *menu;
            GameEngine *game;
            Physic *phy;
    };
}
#endif
